package com.xujiaxin.programme_platform.service;

import com.xujiaxin.programme_platform.entity.FileEntity;

import java.io.InputStream;

public interface FileManageService {

    /*
    * 保存文件
    * 将文件都放在一个文件夹中，
    * 文件在磁盘中是无序的，
    * 只在数据库中有序
    * */
    boolean saveFile(FileEntity fileInfo, InputStream is);

    /*
    * 删除文件
    * 可以同时删除文件和文件夹
    * */
    boolean deleteFile(Long... ids);

    /*
    * 修改文件或文件夹名称
    * */
    boolean modifyFileName(Long id, String fileName);

    /*
    * 移动文件或文件夹
    * 只修改数据中的名称，
    * 磁盘位置不变
    * */
    boolean moveFile(Long id, Long pid);

    /*
    * 下载文件
    * 可以下载文件夹，但是文件夹是个压缩包
    * 实现断连下载
    * */
    void downloadFile(Long id);

    /*
    * 获取动态密钥
    * 文件传输之前先加密，
    * 文件的传输安全还有待提升
    * */
    String getDynamicKey();
}
